// 此vm参数为页面的实例，可以通过它引用vuex中的变量
module.exports = (vm) => {
	// 初始化请求配置
	// 此为自定义配置参数，具体参数见上方说明
	uni.$u.http.setConfig((config) => {
		/* config 为默认全局配置*/
		// config.baseURL = 'http://192.168.3.78:8004/formal'; /* 根域名 
		config.baseURL = 'https://panchizc.com/formal'; /* 根域名 */
		// config.baseURL = 'https://panchizc.com/detection'; /* 根域名 */
		// config.baseURL = 'http://localhost:8888'; /* 根域名 */
		config.dataType = 'json';
		config.showLoading = true; // 是否显示请求中的loading
		config.loadingText = '请求中...'; // 请求loading中的文字提示
		config.loadingTime = 80000; // 在此时间内，请求还没回来的话，就显示加载中动画，单位ms
		config.originalData = true; // 是否在拦截器中返回服务端的原始数据
		config.loadingMask = true; // 展示loading的时候，是否给一个透明的蒙层，防止触摸穿透
		// 配置请求头信息
		config.header = {
			'content-type': 'application/json;charset=UTF-8'
		};
		return config
	});

	// 请求拦截
	uni.$u.http.interceptors.request.use((config) => { // 可使用async await 做异步操作
		let token = uni.getStorageSync("authentication");
		if (token) {
			config.header.Authorization = token
		}
		return config
	}, config => { // 可使用async await 做异步操作
		return Promise.reject(config)
	})

	// 响应拦截
	uni.$u.http.interceptors.response.use((response) => {
		/* 对响应成功做点什么 可使用async await 做异步操作*/
		const data = response.data
		//表示用户未登录，去登录页
		if (data.code === 401) {
			uni.$u.route({
				url: 'pages/login/login'
			})
		}

		//
		if (data.code === 40005) {
			vm.$u.toast(data.msg);
			return false;
		}

		//如果data.code 等于500 直接提示
		if (data.code === 40000) {
			vm.$u.toast(data.msg);
			return false;
		}

		return data
	}, (response) => {
		// 对响应错误做点什么 （statusCode !== 0）
		if(response.data.code == 401){
			uni.$u.route({
				url: 'pages/login/login'
			})
		}
		return Promise.reject(response)
	})
}